/*
 * @param {number} n
 * @return {number} res
 */
// 一个正整数的每一位拿出来算平方
// 求和返回
const getNext = n => {
    n = String(n);
    if (n == 1 || n == 0) return n;
    let res = 0;
    // for i 计数循环 机器读
    // for of 人的可读性更好
    for (let num of n) {
        res += Math.pow(num, 2);
    }
    return res;
}

/*
 * @Author: Tendo 
 * @Date: 2021-07-26 10:35:58 
 * @param {number} n
 * @return {boolean}
 */
// 是否是快乐数
const isHappy = n => {
    const MAP = new Map();
    while (n != 1) {
        MAP.set(n, true);
        n = getNext(n);
        if(MAP.has(n)) return false
    }
    return true
}

console.log(isHappy(19));